package com.ym.medical.dao;

import com.ym.medical.domain.entity.UserCollectionEntity;
import com.ym.medical.domain.param.AddressListParam;
import com.ym.medical.domain.vo.PCMyDoctorVo;
import com.ym.medical.domain.vo.UserCollectionVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;

/**
 * 收藏有问诊记录，药品，器械，文章Dao接口
 *
 * @author ym
 * @date 2020-09-04
 */
@Repository
public interface UserCollectionDao extends Mapper<UserCollectionEntity>{

    /**
     * 查询是否关注医生
     *
     * @param doctId
     * @param currId
     * @return
     */
    long selectAttention(
            @Param("doctId") Long doctId,
            @Param("currId") Long currId,
            @Param("type") String type
    );

    /***
     * 当前用户收藏的问诊记录获取时所需数据
     * @param userId
     * @return
     */
    List<UserCollectionVo> selectCollectionInquiry(Long userId);

    /***
     * 关注商品数量
     * @param userId
     * @return
     */
    int selectTopicTotal(Long userId);

    /***
     * 文章数量
     * @param userId
     * @return
     */
    int selectArticleTotal(Long userId);

    /**
     * 收藏的话题
     * @param userId
     * @return
     */
    List<UserCollectionVo> selectCollectionTopic(Long userId);

    /**
     * 文章收藏
     * @param userId
     * @return
     */
    List<UserCollectionVo> selectCollectArticle(Long userId);

    /**
     * pc 话题收藏
     * @param listModel
     * @return
     */
    List<PCMyDoctorVo> pcCollectionTopic(AddressListParam listModel);

    /**
     * pc 文章收藏
     * @param listModel
     * @return
     */
    List<PCMyDoctorVo> pcCollectArticle(AddressListParam listModel);
}
